//
//  queue.hpp
//  Cpp_Demo
//
//  Created by Robin Guo on 2017/9/25.
//  Copyright © 2017年 Robin Guo. All rights reserved.
//

#ifndef queue_hpp
#define queue_hpp

// 衡量掌握一门语言的唯一标准是能不能做出东西

#include <stdio.h>
#include "list.hpp"
#include <iostream>
#include "node.hpp"

using namespace  std;

template <class T>
class queue: protected list<T> {
private:
    int qsize;
    node<T> *q_front;
    node<T> *q_back;
    
public:
    queue();
    ~queue();
//    virtual void push(T data);
//    virtual T pop();
//    virtual bool isEmpty();
//    virtual int size();
    
    virtual void push(T element);
    virtual T pop() ;
    virtual int size();
    virtual T top() ;
    virtual bool isEmpty();

    T front();
};

#endif /* queue_hpp */
